package com.lemon.exam.entity.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户表 视图对象
 *
 * @author Lemon
 * @since 2025/03/24 10:14:39
 */
@Getter
@Setter
@ToString
@Schema(name = "用户表 - 视图对象")
public class UserVO {

    @Schema(description = "主键ID")
    private Long id;

    @Schema(description = "用户名")
    private String username;

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "手机号")
    private String phone;

    @Schema(description = "性别 1男 2女")
    private Integer sex;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "生日")
    private LocalDate birthday;

    @Schema(description = "头像地址")
    private String avatar;

    @Schema(description = "省ID")
    private Integer provinceId;

    @Schema(description = "市ID")
    private Integer cityId;

    @Schema(description = "县ID")
    private Integer countyId;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "最后登录的IP")
    private String prevLoginIp;

    @Schema(description = "最后登录的时间")
    private String prevLoginTime;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "修改人")
    private String updateBy;

    @Schema(description = "修改时间")
    private LocalDateTime updateTime;

    @Schema(description = "状态 1正常 0异常")
    private Integer status;

    @Schema(description = "角色名称集合")
    private List<Long> roleIdList;

    @Schema(description = "年级班级职位ID集合")
    private List<List<Long>> gradeClassJobIdList;

    @Schema(description = "角色名称集合")
    private List<String> roleNameList;

    @Schema(description = "年级班级职位名称集合")
    private List<String> gradeClassJobNameList;
}
